<?php
	include_once("conexion.php");
	class Tareas{
		var $sqlTareas; 					//Almacena la ultima sentencia SQL
		var $errorTareas;					//Ultimo Error que sucedio en la ultima sentencia
		var $errorSQL;						//El Error SQL
		var $tablaTareas;					//Tabla actual del Objeto
		var $valoresTareas;					//Valores de los datos a introducir o actualizar
		var $objSQL;						//Objeto que hace las consultas
		var $res;							//Ultima consulta realizada
		function __construct($tabla=""){
			$this->tablaTareas=$tabla;
			@$this->objSQL= new mysqli(HOST_DB,USER_DB,PASS_DB,DB);
			if(mysqli_connect_errno()){
				$this->errorSQL=mysqli_connect_error();
				$this->catchError();
			}
		}
		public function insertar($tabla=""){
				$this->tablaTareas=(!empty($tabla))? $tabla:$this->tablaTareas;
				$sql = "INSERT INTO $this->tablaTareas VALUES('',";
				foreach($this->valoresTareas as $dato => $valor) {
					if(is_string($dato)) {
						if($dato=="pass") $sql.= "MD5('". $valor."'), ";
						else $sql .= "'".$valor."', ";
					}
				}
				$sql = substr($sql,0,strlen($sql) - 2);
				$sql .= ")";
				$this->procesaSQL($sql);
		}
		public function actualizar($id,$tabla=""){
			$this->tablaTareas=(!empty($tabla))? $tabla:$this->tablaTareas;
			$sql = "UPDATE $this->tablaTareas SET ";
			foreach($this->valoresTareas as $dato => $valor) {
				if(is_string($dato) && $dato!="id") {
					if($dato=="pass") $sql.= $dato. "=MD5('".$valor."'), ";
					else $sql.= $dato. "='".$valor."', ";
				}
			}
			$sql = substr($sql,0,strlen($sql) - 2);
			$sql.=" WHERE id='". $id. "'";
			$this->procesaSQL($sql);
		}
		public function eliminar($id,$tabla=""){
			$this->tablaTareas=(!empty($tabla))? $tabla:$this->tablaTareas;
			$sql="DELETE FROM $this->tablaTareas WHERE id=$id";
			$this->procesaSQL($sql);
		}
		public function buscar($campo="id",$valor=0,$todos=0, $tabla=""){
			$this->tablaTareas=(!empty($tabla))? $tabla:$this->tablaTareas;
			$sql="SELECT * FROM $this->tablaTareas where $campo='$valor'";
			if($todos) $sql="SELECT * FROM $this->tablaTareas where $campo>$valor";
			$this->procesaSQL($sql);
		}
		public function procesaSQL($sql){
			$this->sqlTareas= $sql;
			if(@$this->res=@$this->objSQL->query($sql)){
				$this->errorTareas= null;
			}else{
				$this->errorSQL=@$this->objSQL->error;
				$this->catchError();
			}
			@$this->objSQL->close();
		}
		public function catchError(){
			$numero_error=(@$this->objSQL->errno)? @$this->objSQL->errno: @mysqli_connect_errno();
			//echo "Numero Error: ".$numero_error."<br>";
			switch($numero_error){
				case 1064:
					$this->errorTareas= "La sentencia SQL es Incorrecta";
					break;
				case 1452:
					$this->errorTareas= "Error de violacion de Llave Foranea";
					break;
				case 1062:
					$this->errorTareas= "Valor a ingresar, ya existe en la tabla";
					break;
				case 1136:
					$this->errorTareas= "Los contadores de columnas no coinciden con la tabla actual";
					break;
				case 1054:
					$this->errorTareas= "No existe una de las columnas a las que desea insertar";
					break;
				case 2005;
					$this->errorTareas= "No se pudo conectar al Servidor";
					break;
				case 1045;
					$this->errorTareas= "El usuario o password de conexion a la base de datos invalido";
					break;
				case 1049;
					$this->errorTareas= "La base de Datos no Existe";
					break;
				default:
					$this->errorTareas= 
					"<b>Error Numero:</b> "."1.- ".@$this->objSQL->errno.", 2.- ".@mysqli_connect_errno(). "<br>". 
					"<b>Error:</b> "."1.- ".@$this->objSQL->error.", 2.- ". @mysqli_connect_error();
			}
		}
	}

?>